#include <stdio.h>
#include <stdint.h>
#include <sys/ipc.h>
#include "shm.h"
#include "envdata.h"

int shmid;
void *shmaddr;

/**
 *@breif:初始化共享内存
 *@author：马德顺
 */
int init_shm(void)
{

	//创建一个共享内存
	if((shmid = shmget(KEY,sizeof(struct sendEnv),IPC_CREAT | 0666)) == -1)
	{
		perror("shmget");
		return -1;
	}

	//映射共享内存
	if((shmaddr = (void *)shmat(shmid,NULL,0)) == (void *)-1)
	{
		perror("shmat");
		return -1;
	}

}

/**
 *@breif:删除共享内存
 *@author：马德顺
 */
int delete_shm(void)
{
	//撤销映射
	if(shmdt(shmaddr) == -1)
	{
		perror("shmdt");
		return -1;
	}

	//删除共享内存
	if(shmctl(shmid,IPC_RMID,NULL) == -1)
	{
		perror("shmctl");
		return -1;
	}

	return 0;
}

